Moodle install
これで、localhost上では動くけど、
code: docker-compose.yml
version: '2'
services:
mariadb:
image: 'docker.io/bitnami/mariadb:10.5-debian-10'
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_moodle
- MARIADB_DATABASE=bitnami_moodle
volumes:
- 'mariadb_data:/bitnami/mariadb'
ports:
- "3307:3306"
moodle:
image: 'docker.io/bitnami/moodle:3-debian-10'
ports:
- '8088:8443'
environment:
- MOODLE_DATABASE_HOST=mariadb
- MOODLE_DATABASE_PORT_NUMBER=3306
- MOODLE_DATABASE_USER=bn_moodle
- MOODLE_DATABASE_NAME=bitnami_moodle
- ALLOW_EMPTY_PASSWORD=yes
- LANG=ja_JP.UTF-8
volumes:
- 'moodle_data:/bitnami/moodle'
- 'moodledata_data:/bitnami/moodledata'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
moodle_data:
driver: local
moodledata_data:
driver: local
ENVで、LANG=ja_JP.UTF-8に設定した。 moodle側で日本語にした時に serverのlocaleがでwarningがでるので。
hostで、3306を使ってるので、3307をexposeしておいて、後で、SQL clientでDBの中身を概観しておく。 mdl_userテーブルにユーザー情報があるよう
https://gyazo.com/a32287d4ac88e0019fb2f58b304952e0
nginxのreverse proxyの下で動かしたい。 code: nginx.conf
server {
listen 80;
index index.html;
server_name NAME
}
server{
listen 443 ssl;
index index.html;
server_name NAME
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
}
ssl_certificate /etc/letsencrypt/live/NAME/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/NAME/privkey.pem; # managed by Certbot
}
80は 443の方にredirect
proxy_set_headerを設定して、webアプリ(moodle)側で見えるようにする(コピペ、forward, servername, ipなどを設定かな)
proxy_redirect http:// https:// で、httpsにしてるのを確実にする?
proxy_passを、https.... で、sslのprotocolを維持する?
moodle側で、httpで受けてるとすると、moodleのサーバーが mixed content(http, https)になって、うまく解消できなかったので。
moodleのconfig.phpで、$CFG->wwwrootをdomain名で設定するかで試行錯誤したが、
wwwrootを https...とsslに決め打ちで指定すると、proxyの設定との絡みで? sslの redirect loopになり、
303 statusの嵐になってしまった...
config.phpのlogicをみると、そうなりそうにみえないけど、new StdClass() してるだけだけど、
install後に、
passwordの変更して、
languageを日本語にした。
参考:
DBクライアントで、DBの様子をみる。
ホスト側からアクセスする場合は、-h 127.0.0.1にするのがミソ?かも。
localhostの場合、ソケットの指定が必要になり、どれ使ったら良いのか分からない
bitnamiのimageの場所
passwordのなどの env設定の例,そのままだけど
ここに、virtual hostの設定があった....
TODO:
maria dbの allow_empty_passwordを修正
moodle側でDBのpasswordを指定する場所は?
直下の config.php に $CFG->dbpass がある。
docker volumeでいくと、/var/lib/volumes/moodle_moodle_data/_data/config.php
が、当然、docker側のENVで設定する
ただ、その際に、empty_passwordを許可を取り消すと、
DBのrootユーザーのところも設定しないと....
元々、docker composeで、そのnetwork内からしかアクセスできない(expose した portは別)なので、
そのままでrootなどを設定ファイルに書くのは... それも hostのshellの環境変数から渡す????
そのままにする...
moodleでapache設定で AcceptPathInfo Onが必要かもしれないが、、よくわからない。